package org.abc.fund.entity.factorEntity;
import java.util.List;

import static org.abc.fund.entity.factorEntity.StyleFactor.StyleType.GROWTH;

public class StyleFactorDto {






    private String name;
    private String factorCode;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    private String description;
    public StyleFactor.StyleType getFactorType() {
        if (this.factorType == null || this.factorType.isEmpty()) {
            factorType= String.valueOf(GROWTH);
        }
        return StyleFactor.StyleType.valueOf(this.factorType);
    }

    public void setFactorType(String factorType) {
        this.factorType = factorType;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFactorCode() {
        return factorCode;
    }

    public void setFactorCode(String factorCode) {
        this.factorCode = factorCode;
    }

    public String getAlgorithm() {
        return algorithm;
    }

    public void setAlgorithm(String algorithm) {
        this.algorithm = algorithm;
    }

    public String getWeightsConfig() {
        return weightsConfig;
    }

    public void setWeightsConfig(String weightsConfig) {
        this.weightsConfig = weightsConfig;
    }

    public String getAlgorithmParams() {
        return algorithmParams;
    }

    public void setAlgorithmParams(String algorithmParams) {
        this.algorithmParams = algorithmParams;
    }

    public List<String> getBaseFactors() {
        return baseFactors;
    }

    public void setBaseFactors(List<String> baseFactors) {
        this.baseFactors = baseFactors;
    }

    public String getCalculationPeriod() {
        return calculationPeriod;
    }

    public void setCalculationPeriod(String calculationPeriod) {
        this.calculationPeriod = calculationPeriod;
    }

    public int getLookbackPeriod() {
        return lookbackPeriod;
    }

    public void setLookbackPeriod(int lookbackPeriod) {
        this.lookbackPeriod = lookbackPeriod;
    }

    public boolean isEnabled() {
        return enabled;
    }

    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }

    private String factorType;
    private String algorithm;
    private String weightsConfig;
    private String algorithmParams;
    private List<String> baseFactors;
    private String calculationPeriod;
    private int lookbackPeriod;
    private boolean enabled;

}
